/************************************************
 * Author       :   XXY
 * Blog         :   https://www.cnblogs.com/jzyl
 * Gitee        :   https://gitee.com/xiaobaichong
 * Email        :   1047185209@QQ.com
 * FileName     :   BitUtility.cs
 * CreateData   :   2024/7/7 21:29:42
 * UnityVersion :   2021.3.30f1c1
 * Description  :   bit 工具类
************************************************/

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

namespace Main
{
    public class BitUtility
    {
        /// <summary>
        /// 获取一个整数 value 的第 offset 位(从右往左数，从 0 开始)是否为 1
        /// </summary>
        /// <returns>如果为1则返回true</returns>
        public static bool GetBit(int value, int offset)
        {
            return (value & 1 << offset) != 0;
        }
        /// <summary>
        /// 设置一个整数 value 的第 offset 位(从右往左数，从 0 开始)数值
        /// </summary>
        /// <param name="bit">true:1, false:0</param>
        public static void SetBit(ref int value, int offset, bool bit)
        {
            if (bit)
            {
                value |= (1 << offset);
            }
            else
            {
                value &= ~(1 << offset);
            }
        }
    }
}
